A typical serial communication system includes a serial data transmitter and a serial data receiver. The serial data transmitter generates a serial data stream including the data symbols, and transmits the serial data stream to a serial data receiver. The serial data receiver receives the serial data stream, converts the serial data stream into a parallel data stream, and generates a symbol stream by aligning symbols in the parallel data stream. In this way, the serial data receiver recovers the original data symbols in the serial data stream generated by the serial data transmitter.
In some types of serial communication systems, a serial data transmitter encodes data using an 8b/10b line code. In this process, a serial data transmitter encodes 8-bit data symbols into corresponding 10-bit data symbols and generates a serial data stream including the encoded data symbols. Additionally, the serial data transmitter generates 10-bit control symbols and embeds the control symbols in the serial data stream. For example, a control symbol may be an alignment symbol defining an alignment boundary in the serial data stream. In these types of communication systems, the serial data receiver aligns encoded data symbols in the parallel data stream based on alignment symbols in the parallel data stream. Moreover, the serial data receiver decodes the encoded data symbols recovered from the serial data stream by converting the encoded data symbols back into the original 8-bit data symbols.
Although many serial communication systems have successfully employed an 8b/10b line code for encoding data, the format of data symbols and control symbols differ among serial communication systems. Some types of serial communication systems employ a little-endian format for a serial data stream in which a least significant bit of a symbol precedes a most significant bit of the symbol in the serial data stream. Other types of serial communication systems employ a big-endian format for a serial data stream in which a most significant bit of a symbol precedes a least significant bit of the symbol in the serial data stream. Furthermore, a bit polarity of symbols may be negated in a serial data stream. For example, a receiver may receive a serial data stream over a differential pair of wires that are inadvertently reversed causing an inverted polarity format in which each bit of the serial data stream is logically negated. Because of these various formats for a serial data stream, a serial data transmitter may not be compatible with a serial data receiver.